Blockchain technology was developed as a way of providing a publicly transparent and decentralized ledger that is configured to track and store digital transactions in a publicly verifiable, secure, and hardened manner to prevent tampering or revision.
A typical blockchain includes three primary functions: read, write, and validate. For example, a user of the blockchain must have the ability to read the data that resides on the blockchain. A user of the blockchain must also have the ability to write, e.g. append, data to the blockchain. Every write operation starts out as a proposed transaction that is posted on the network. The transaction may be submitted for addition to the blockchain by a user of the blockchain, for example, a wallet application or other application program interface (API). Once submitted, the proposed transaction is added to a pool of available transactions for addition to the blockchain. Validator nodes associated with the blockchain may then select transactions from the pool for addition to a new block.
In some cases, the transaction found in the pool may not always be valid, for example, they may be malformed (syntax errors), or may constitute an attempt to perform a task for which the submitter is not authorized. Validation refers to filtering out invalid transactions and then deciding on the exact order for the remaining, valid, transactions selected for addition to the blockchain as part of a new block. Validation is often performed by validator nodes associated with the blockchain.
Once ordered, the transactions are packaged into a new block, and the new block is voted on by the validator nodes associated with the blockchain to determine whether to add the new block to the blockchain. If a consensus to add the new block is reached, e.g., a threshold number of “for” votes, the new block may be appended to the blockchain. Each new block that is appended to the blockchain also includes a hash of the previous block. Accordingly, as each new block is added, the security and integrity of the entire blockchain is further enhanced. It is important to note that once data is written to the blockchain, for example, once a block including a set of transactions has been appended to the blockchain, that data can no longer be altered or modified. In a typical blockchain, the anonymity of the users is protected through the use of pseudonyms and the transaction data itself is protected through the use of cryptography, e.g., via the use of hash codes.